package com.lwbldy.modules.student.service;

import com.lwbldy.common.tools.R;
import com.lwbldy.modules.student.domain.PreRegistration;
import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;

/**
 *  service
 * @author lwb
 * @email lwbldy@163.com
 * @date 2022-01-08 10:46:19
 */
public interface IPreRegistrationService {

    /**
     * 按条件查询数据
     * @param preRegistration
     * @return
     */
    List<PreRegistration> selectList(PreRegistration preRegistration);


    /**
     * 分页查询
     * @param preRegistration
     * @return
     */
    PageInfo<PreRegistration> page(PreRegistration preRegistration);

    /**
     * 添加数据
     * @param preRegistration
     * @return 执行结果
     */
    Integer insert(PreRegistration preRegistration);


    /**
     * 根据 id 查询
     * @param id
     * @return
     */
    PreRegistration selectById(Integer id);


    /**
     * 根据 id 更新数据
     * @param preRegistration
     * @return
     */
    Integer updateById(PreRegistration preRegistration);


    /**
     * 根据 id 删除数据
     * @param id
     * @return
     */
    Integer deleteById(Integer id);


    /**
     * 根据 id 批量删除
     * @param ids
     * @return
     */
    Integer deleteByIds(Object[] ids);

    /**
     * 推送学生到平台
     * @param id
     * @return
     */
    R putStudent(int id);

    /**
     * 批量推送学生
     * @return
     */
    R putStudentList(Object[] ids);

    /**
     * 推送缴费
     * @param id 学生id
     * @param paramMap 缴费明细
     * @param moneyAll 总金额
     * @return
     */
    R billStudent(int id, Map<String,Object> paramMap,double moneyAll);

    /**
     * 推送学生进行缴费
     * @param id
     * @return
     */
    R billStudent(int id);

    /**
     * 获取缴费状态
     * @param billNo
     * @return
     */
    R reloadFeeStatus(String billNo);

    /**
     * 删除账单
     * @param billNo
     * @return
     */
    R delFeeStatus(String billNo);

    /**
     * 取消账单
     * @param billNo
     * @return
     */
    R cancelFree(String billNo);

    /**
     * 根据id查询是否推送
     * @param idCard
     * @return
     */
    List<PreRegistration> queryByIdcard(String idCard);

    /**
     * 学生修改专业
     * @param registration
     * @return
     */
    int changeMajor(PreRegistration registration);

    /**
     * 学生修改专业，添加日志
     * @param registration
     * @return
     */
    int changeMajorByLog(PreRegistration registration);
}
